﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.Generic;

namespace HCMUS_SearchService_Group2
{
    /////////////////////////////////////////////////
    /// \brief Lớp dùng để chỉnh sửa lỗi chính tả
    /// \author Nguyễn Lương Minh - 0912283.
    /// \details <h3>Cung cấp các phương thức để chỉnh sửa lỗi chính tả</h3>
    ////////////////////////////////////////////////
    public class CorrectSpellingHelper
    {
        public const int MAXSUGGEST = 10;

        private string _resultList;
        public string ResultList
        {
            get { return this._resultList; }
            set { this._resultList = value; }
        }
        private WordDAO wordDAO;
        private List<ObjectDTO> words;
        public CorrectSpellingHelper()
        {
            this.wordDAO = new WordDAO();
        }

        /////////////////////////////////////////////////
        /// \brief Hàm chỉnh lỗi chính tả
        /// \param[in] String input.
        /// \returns List<String>.
        /// \details <h3>Giúp lấy những gợi ý từ đúng chính tả từ chuỗi input</h3>
        /////////////////////////////////////////////////
        public string CorrectSpelling(String input)
        {
            ResultList = String.Empty;
            /// \see TranslateHelper.FormatInputString(Sring);
            String inputConverted = TranslateHelper.FormatInputString(input);

            //Chỉnh lỗi chính tả
            string[] word = inputConverted.Split(' ');
            for (int i = 0; i < word.Length; i++)
                this.FindWordBaseInput(word[i]);
            //this.FindWordBaseInput(inputConverted);

            return this.ResultList;
        }

        /////////////////////////////////////////////////
        /// \brief Hàm chỉnh lỗi chính tả
        /// \param[in] String input.
        /// \returns List<String>.
        /// \details <h3>Giúp chỉnh lỗi chính tả từ chuỗi cho trước.</h3>
        /////////////////////////////////////////////////
        public void FindWordBaseInput(String input)
        {
            //cắt từng chữ
            //so sánh từng chữ với csdl

            words = wordDAO.GetAllDTO();

            foreach (WordDTO word in words)
            {
                if (word.InCorrectWord.Equals(input))
                {
                    //ResultList.Add(word.CorrectWord);
                    ResultList += word.CorrectWord + " ";
                    return;
                }
            }
            ResultList += input + " ";
        }
    }
}
